package com.yoga.dao.dao;

import com.yoga.common.qto.CourseQTO;
import com.yoga.common.qto.YogaUserQTO;
import com.yoga.dao.domain.CourseDO;
import com.yoga.dao.domain.YogaUserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 课程，管理所有课程 DAO接口
 * 
 * @Author hdx
 * @Date 2020年09月24日
 */
@Mapper 
public interface CourseDao{

    /**
     * 
     * 方法insert的功能描述：新增课程，管理所有课程
     * 
     * @param record
     * @return int
     * <PRE>
     * author hdx 
     * Date 2020年09月24日
     * </PRE>
     */
    int insert(CourseDO record);

    /**
     * 
     * 方法deleteById的功能描述：根据Id删除课程，管理所有课程
     * 
     * @param id
     * @return int
     * <PRE>
     * author hdx 
     * Date 2020年09月24日
     * </PRE>
     */
    int deleteById(Long id);

    /**
     * 
     * 方法updateById的功能描述：根据Id更新课程，管理所有课程
     * 
     * @param record
     * @return int
     * <PRE>
     * author hdx 
     * Date 2020年09月24日
     * </PRE>
     */
    int updateById(CourseDO record);

    /**
     * 
     * 方法findById的功能描述：根据Id查询课程，管理所有课程
     * 
     * @param id
     * @return CourseDO
     * <PRE>
     * author hdx 
     * Date 2020年09月24日
     * </PRE>
     */
    CourseDO findById(Long id);

    CourseDO findByName(@Param("courseName") String courseName);

    Integer findForPageCount(CourseQTO courseQTO);

    List<CourseDO> findForPage(CourseQTO courseQTO);
}